Technotes


Download

Acrobat file (84K)
Download

ClarisWorks 4 file (36K)
Download Technotes 1001-1012

QuickView file (473K)

TECHNOTE : On the Deferred Task Manager



Technote 1003 OCTOBER 1995



By Matthew Xavier Mora
Apple Developer Technical Support (DTS)



This Note highlights two points - interrupt latency, and task record ownership - that might be unclear after reading the chapter "Deferred Task Manager" in Inside Macintosh:Processes.

This Note is intended for all developers who need to install a lengthy interrupt task capable of running with all interrupts enabled.

Contents


About Deferred Task Latency

There may be significant latency incurred between installing a deferred task with DTInstall and when that task is performed. This time is not deterministic and cannot be controlled. Real-time response cannot be guaranteed on Macintosh computers with or without the use of deferred tasks.

About the Ownership of the DeferredTask Record

When you install a deferred task with DTInstall, you are giving your DeferredTask record to the system; the system owns the record until the routine designated by the DeferredTask record's dtAddr field is entered. During the time the system owns a DeferredTask record, you must not change any of the fields of that record.

Similarly, you must not depend on the contents of the record when it is owned by the system. The system is free to alter the record in any fashion while it has ownership and restores the record to its original state prior to invoking the deferred task. You must not install a DeferredTask record which is already owned by the system. Finally, you must not use the dtReserved field for any purpose; it should be set to zero prior to installing a deferred task with DTInstall.



Further Reference

Change History

This Technote was originally written by Jim Luther, in July, 1992. Most of the original information has been incorporated into Inside Macintosh: Processes.

The references section has been updated. Information found in the chapter "Deferred Task Manager" in Inside Macintosh:Processes, has been deleted.



Technotes
Previous Technote | Contents | Next Technote